Systems and methods for prioritizing mobile media player files

ABSTRACT

Disclosed are embodiments of systems and methods for prioritizing mobile media player files by providing for the automated addition and/or deletion of media items for a mobile media player. In some embodiments, a statistical method may be provided for inferring which media items on a mobile media player should be deleted based on, for example, user taste data. In some embodiments, new media items may be loaded onto a user&#39;s mobile media player by creating one or more playlists from a playlist builder. The playlist(s) may be created by using user taste data. Rankings may also be created to determine an order for deletion of the media items currently on a mobile media player and/or for addition of new media items to the device.

RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119(e) of U.S. Non-Provisional patent application Ser. No. 11/674,028 filed Feb. 12, 2007, titled “Systems and Methods for Prioritizing Mobile Media Player Files.” This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 60/772,957 filed Feb. 13, 2006, and titled “Auto-Filling a Mobile Media Playback Device.” This application also claims the benefit under 35U.S.C. §119(e) of U.S. Provisional Patent Application No. 60/772,147 filed Feb. 10, 2006, and titled “Freeing Space for New Media Items on a Mobile Media Playback Device Based on Inferred User Taste.” The three aforementioned patent applications are incorporated herein by specific reference.

BRIEF DESCRIPTION OF THE DRAWINGS

Understanding that drawings depict only certain preferred embodiments of the invention and are therefore not to be considered limiting of its scope, the preferred embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

FIG. 1 is a flowchart of one embodiment of a method for the automated deletion of media items from a portable media player.

FIG. 2 is a flowchart of one implementation of a probability computation process.

FIG. 3 is a flowchart of another embodiment of a method for the automated deletion of media items from a portable media player.

FIG. 4 is a flowchart of one embodiment of a method for the automated deletion of media items from a portable media player and selection and addition of new media items to the player.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, certain specific details of programming, software modules, user selections, network transactions, database queries, database structures, etc., are provided for a thorough understanding of the specific preferred embodiments of the invention. However, those skilled in the art will recognize that embodiments can be practiced without one or more of the specific details, or with other methods, components, materials, etc.

In some cases, well-known structures, materials, or operations are not shown or described in detail in order to avoid obscuring aspects of the preferred embodiments. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in a variety of alternative embodiments. In some embodiments, the methodologies and systems described herein may be carried out using one or more digital processors, such as the types of microprocessors that are commonly found in PC's, laptops, PDA's and all manner of other desktop or portable electronic appliances.

Disclosed are embodiments of systems and methods for prioritizing mobile media player files. Some embodiments of the invention may provide systems and methods for automated deletion of files, such as media items, from a mobile media player. In some embodiments, a statistical method may be provided for inferring which media items on a mobile media player should be deleted based upon, for example, user taste data. Deletion of these files provides free space for new media items to be placed on the media player. One or more user taste parameters, intended playback scenarios, and/or explicitly specified user preferences may be combined to rank items from highest to lowest deletion priority to meet a required space constraint.

Some embodiments of the invention may also, or alternatively, provide methods or systems for filling a mobile media player with media items. In some embodiments, the auto-fill operation may be automatically performed at a designated time and/or before a significant event, such as at the beginning of the day or before a trip. The new media items loaded on the device may be selected to be responsive to the user's taste preferences, in some cases as influenced by the anticipated event. The new media items may also be selected, and current items on the device deleted, based in part on merging user taste data accumulated on the device since the last fill with user historical and community taste data on a system host server.

In one embodiment of a system according to the invention, one or more mobile media players are provided. Each mobile media player is configured to play media items in a media item playlist. A playlist modification component is provided, which may be configured to receive a media item playlist from a given user's mobile media player, analyze user taste data associated with the mobile media player, and modify the media item playlist using the user taste data. A network transmission component may also be provided to transfer media items to the mobile media player and delete media items from the mobile media player in accordance with the modified media item playlist. If desired, the modified media item playlist may also be downloaded to the mobile media player.

The playlist modification component may also be configured to rank the media items in the media item playlist according to the user taste data analysis. In such embodiments, the network transmission component may also be configured to delete media items from the mobile media player according to a similar ranking. The playlist modification component may also comprise a playlist builder configured to build one or more playlists from the user taste data. The playlist builder may be configured to rank the media items in at least one playlist from the user taste data. When the media items in a playlist are so ranked, the network transmission component may be configured to download media items to the mobile media player according to their ranking. The system may therefore rank media items for deletion and/or for addition to a mobile media player.

In some embodiments, the playlist modification component may further be configured to compare the user taste data with user taste data from a previous session to identify changed user taste data. The playlist modification component may then modify the media item playlist using the changed user taste data.

In one embodiment of a method according to the invention, a media item playlist is received from a mobile media player. User taste data associated with a user of the mobile media player may also be received and analyzed. A recommended playlist may then be generated from the analysis of the user taste data. The recommended playlist may then be compared with the media item playlist and modified using the comparison with the media item playlist. This comparison and modification may involve, for example, removing media items from the recommended playlist that are already on the media item playlist. The media items in the recommended playlist, or a subset of the media items in the recommended playlist, may then be ranked. This ranking may comprise the order in which the media items are to be ultimately transferred to the mobile media player. Of course, this does not necessarily mean that all of the items in the ranked list must be transferred. Indeed, space constraints, special user demands, etc., may dictate that less than all of the ranked media items be transferred. Media items in the media item playlist may also be ranked in the order in which they are to be removed from the mobile media player. However, again, this does not require that all ranked items be removed. One or more media items may then be deleted from the mobile media player in an order according to their rankings, and one or more media items may be transferred to the mobile media player in an order according to their rankings.

The media item playlist may also be modified to reflect the media items removed from the mobile media player and the media items transferred to the mobile media player. The modified media item playlist may then also be transferred to the mobile media player.

As used herein, a “user recommender” is a module integrated in a community of users, the main function of which is to recommend users to other users in that community. There may be a set of items in the community for the users of the community to interact with. There may also be an item recommender to recommend other items to the users. Examples of recommender systems that may be used in connection with the embodiments set forth herein are described in U.S. patent application Ser. No. 11/346,818 titled “Recommender System for Identifying a New Set of Media Items Responsive to an Input Set of Media Items and Knowledge Base Metrics,” and U.S. patent application Ser. No. 11/048,950 titled “Dynamic Identification of a New Set of Media Items Responsive to an Input Mediaset,” both of which are hereby incorporated by reference.

As used herein, the term “media data item” is intended to encompass any media item or representation of a media item. A “media item” is intended to encompass any type of media file which can be represented in a digital media format, such as a song, movie, picture, e-book, newspaper, segment of a TV/radio program, game, etc. Thus, it is intended that the term “media data item” encompass, for example, playable media item files (e.g., an MP3 file), as well as metadata that identifies a playable media file (e.g., metadata that identifies an MP3 file). It should therefore be apparent that in any embodiment providing a process, step, or system using “media items,” that process, step, or system may instead use a representation of a media item (such as metadata), and vice versa.

Examples of processes and systems for the automated removal of media items from a mobile media player will now be discussed in greater detail. Typically, the memory available for storing media items on a mobile media player is a limited resource which must be managed. When loading new media items, a user must frequently decide whether to overwrite, or otherwise remove, media items currently stored on the device to make room for new media items. The process for loading new media items can be expedited and simplified for a user if each of the media items on a device, or a subset of the media items on a device, can be automatically ranked according to current user interest in retaining them. Given the ranking, existing items can be automatically deleted from least desirable to most desirable until either the amount of required space, or a threshold of desirability, is reached. The freed space is then available for loading new media items. Examples of processes and systems for automatically adding media items to a mobile media player will be discussed infra.

Examples of methods for inferring free space based on statistical regression are described herein. An example regression model for attaching a probability of deletion to each item in the device will be introduced. An example method for estimating the parameters of the model responsive to user preferences will then be outlined. Finally, example deterministic and random schemes for deleting items using the statistical regression values will be described.

Inferring “free space” on a mobile device by statistical regression:

Assume the total space available for storing media items on a mobile device is S_(T) bytes and that the device memory currently includes items m₁, m₂, . . . , m_(N) requiring space:

S _(U) =s(m ₁)+s(m ₂)+ . . . +s(m _(N))

The task is to determine which items M_(i1), m_(i2), . . . , m_(iL) to discard, the space used by the remaining items

S _(R) =s(m ₁)+ . . . +s(m _(i1)−1)+s(m _(i1)+1)+ . . . +s(m _(i2)+1)+ . . . .

and the resulting free space

S _(F) =S _(T) −S _(R)

available for new items.

Generalized Linear Regression Model:

One approach to doing this uses standard statistical regression with a generalized linear model. The decision to delete an item is represented as a binary random variable y, such that a sample instance “y_(i)=1” means delete item m_(i) and “y_(i)=0” means retain item m_(i). We assume that the value of y is predicted by a vector of measurable covariates X=[x₁, x₂, . . . , x_(K)], which need not be binary.

The covariates X predict y probabilistically. That is,

Pr{y=1|X=[x ₁ , x ₂ , . . . , x _(K) ]}=F(β₀ x ₀+β₁ x ₁+β₂ x ₂+ . . . +β_(K) x _(K))=F(βX)

where we assume x₀=1 for notational convenience and F(x) is a monotonic increasing function that ranges from)F(−∞)=0 to F(∞)=1. The covariates X can be any measurable properties of the items reflecting user taste that increase or decrease the probability of deleting an item.

Remembering y is a binary random variable, it can be shown that

E{y|X,β}=1*Pr{y=1|X,β}+0*Pr{y=0|X,β}=F(βX).

This is mathematically equivalent to saying that the random variable y is described by the equation

y=F(βX)+ε

where ε is a random variable with cumulative distribution F(y).

Multinomial Generalization of the Linear Model:

The basic linear model can be further extended into a linear model in nonlinear functions of the covariates by simply replacing the covariate vector X by a new nonlinear covariate vector

X′=[g1(X),g2(X), . . . , gL(X)]=G(X)

in the general formulation of the model, so that

y=F(βG(X))+ε.

This nonlinear model can be much harder to solve if one seeks to find an optimal multinomial function G(X) rather than just the parameter vector β. The R computational environment supports this nonlinear extension in the generalized linear model solver, where G(X) is a vector multinomial function.

Estimating Model Parameters:

In the most common case, we don't know the vector β of model parameters a priori, but must instead derive an estimate β′ given a set of examples (y₁, x₁), (y₂, X₂), . . . , (y_(N), X_(N)), N>>M. Typically, this is done using maximum likelihood methods, which incorporate specific mathematical techniques to deal with certain details that arise in real applications. However, it may be unlikely in the present application that there will be a set of examples (y₁, x₁), (y₂, X₂), . . . , (y_(N), X_(N)) we can use to derive an estimate for the parameter vector β′=[β′₁, β′₂, . . . , β′_(k)]. Instead, one must either specify ad hoc values for β or use alternative methods for producing these values. One practical method is to quantify informal logical rules for retaining or deleting items.

Arithmetization of Logical Expressions:

One simple approach is to assume that the variables X are values for a set of metrics X which can be computed for each media item and that we have a logical function

(X) which informally describes the rules in terms of the metrics for deciding whether an item should be retained or deleted. Using the standard methods of Boolean algebra, we can reduce

(X) to a “sum-of-products” logical form:

(X)=z ₁(X)

z ₂(X)

. . .

z _(k)(X)

where each z_(i)(X) is a conjunction of some subset of the metrics X, e.g.:

z _(i)(X)=x ₂

x ₅

x ₇

We can translate the Boolean function

(X) to a weighted multinomial function in the values X of the metrics X

βG(X)=β₁ z ₁+β₂ z ₂+ . . . +β_(k) z _(k)−½

where each z_(i) is the product of the values of the metrics in the corresponding conjunction z_(i), e.g.:

z _(i)(X)=x ₂ x ₅ x ₇

There are various ways for choosing the values β_(i) for this translation of the Boolean function

(X). One way, if we assume that each x_(i) is a bounded, non-negative quantity, is to let each β_(i) be the reciprocal of the product of the upper bounds of the value for the metrics in the corresponding product, e.g.:

β_(i)=1/[sup(x ₂)sup(x ₅)sup(x ₇)]

This monotonic model can be extended to include negated logical variables

x_(i) by representing the metric value for a negated logical variable as

˜x _(i) =sup(x _(i))−x _(i)

Some Example Metrics:

As developed here, the model can include as a component any metric which is predictive of whether an item should be retained or deleted. One class of predictive covariates are popularity metrics including:

1) The total number of plays p(t) at any point in time, perhaps normalized by the total expected number of plays P, (i.e., p(t)/P).

2) The recent rate of plays r(t)=[p(t)−p(t−Δt)]/Δt.

3) The recent rate of skips s(t)=[q(t)−q(t−Δt)]/Δt, where q(t) is the number of times the listener has prematurely terminated playback of the item.

Another class of predictive covariates are based on the similarity between an item i and some candidate new items j₁, j₂, . . . , j_(m). One type of similarity metric is based on metadata. Suppose we have a set of I metadata items (e.g., genre, year, label) for each item and we denote the values of the metadata items for item i as m_(1i), m_(2i), . . . , m_(li). We can define the meta-data similarity between items i and j as

η(i,j)=msim(m _(1i) ,m _(1j))+msim(m _(2i) ,m _(2j))+ . . . +msim(m _(li), m_(lj))

where the function msim(m_(li), m_(lj)) evaluates to “1” if m_(li) and m_(lj) are considered to be similar and “0” otherwise. Given the item i and some candidate new items j₁, j₂, . . . , j_(m), we can use as another component of the model:

4) The q-mean metadata similarity η(i)={[η(i, j₁)^(q)+η(i, j₂)^(q)+ . . . +η(i, j_(l))^(q)]/I}^(1/q)

Note that for q=1, q→0, q=−1, and q→∞, the q-mean reduces to the arithmetic mean, geometric mean, harmonic mean, and maximum (norm), respectively. Furthermore, one could also take the minimum of the η(i, j_(l)) as a similarity metric.

In addition to metadata similarity, in those cases where we have an independent similarity measure 0≦μ(i,j)≦1 between items i and j, we can define

5) The q-mean relational similarity μ(i)={[μ(i, j₁)^(q)+μ(i, j₂)^(q)+ . . . +μ(i, j_(l))^(q)]/l}^(1/q)

Finally, if we let U(i,j) denote the vector of similarities μ(i, l), l≠ii, j for item i, we can define the cosine similarity between U(i,j) and U(j,i) as

ρ(i,j)=

U(i,j),U(j,i)

/∥U(i,j)∥ ∥U(j,i)∥

In some cases, one may want to include only the component similarities μ(i, l) for the new items j₁, j₂, . . . , j_(m) in the similarity vectors U(i,j) and U(j,i). Using these component similarities ρ(i,j) we can define

6) The q-mean cosine similarity ρ(i)={[ρ(i, j₁)^(q)+ρ(i, j₂)^(q)+ . . . +ρ(i, j_(l))^(q)]/l}^(1/q)

Other metrics, and techniques for combining measurable metrics on an item into a probability value, including those involving the arithmetization of a logical function

(X) which informally describes whether an item should be retained or deleted, are also within the spirit of the method for deducing the probability that an item should be retained or deleted, as described herein.

Item Deletion Methods:

Once we have a coefficient vector β, we can determine which items to delete in one of two ways:

Deterministic Deletion:

In the deterministic approach, the actual decision d_(i) whether to delete item m₁ is determined by the predicted E{y_(i)|X_(i), β}=F(βX_(i)) as

$d_{i} = {\begin{matrix} / \\  \\  < \\  \\  \smallsetminus  \end{matrix}\begin{matrix} 1 & {{user}\mspace{14mu} {specifies}\mspace{14mu} {that}\mspace{14mu} {item}\mspace{14mu} {should}\mspace{14mu} {be}\mspace{14mu} {deleted}} \\ \; & \; \\ 0 & {{user}\mspace{14mu} {specifies}\mspace{14mu} {that}\mspace{14mu} {item}\mspace{14mu} {should}\mspace{14mu} {be}\mspace{14mu} {retained}} \\ \; & \; \\ 1 & {{{if}\mspace{14mu} E\left\{ {{y_{i}/X_{i}},\beta} \right\}} > {B\mspace{14mu} {otherwise}}} \end{matrix}}$

where X_(i) is the vector of measured factors for item m_(i), and the threshold 0≦B≦1 is a threshold of desirability for retaining items, or is selected such that the resulting free space S_(f) is large enough to meet whatever other space requirements that might be externally imposed.

Random Deletion

The random approach uses the binary random variable y_(i) directly. That is, the decision d_(i) to delete item m₁ is the random variable

$d_{i} = {\begin{matrix} / \\  \\  < \\  \\  \smallsetminus  \end{matrix}\begin{matrix} 1 & {{user}\mspace{14mu} {specifies}\mspace{14mu} {that}\mspace{14mu} {item}\mspace{14mu} {should}\mspace{14mu} {be}\mspace{14mu} {deleted}} \\ \; & \; \\ 0 & {{user}\mspace{14mu} {specifies}\mspace{14mu} {that}\mspace{14mu} {item}\mspace{14mu} {should}\mspace{14mu} {be}\mspace{14mu} {retained}} \\ \; & \; \\ y_{i} & {otherwise} \end{matrix}}$

where Pr{y_(i)=1/Xi}=F(βX_(i)). Given F(βX_(i)), standard computational techniques can be used to generate sample instances of a binary random variable y, with the required binary distribution Pr{y_(i)=1} and Pr{y_(i)=0}.

Because deletion is a random process, the amount of resulting free space S_(f) also is a random variable in this approach. Meeting a desired objective for the resulting amount of free space S_(f)≧S_(f) can be more complex than for the deterministic approach. This may be handled by generating a vector of sample instances

Y^((n))=[y₁, y₂, . . . , y_(N)],

doing the indicated deletions, and evaluating the resulting free space S_(f). The process may then be repeated as necessary until the requirement S_(f)≧S_(f) is met. Alternatively, one could sequentially generate vectors of sample instances Y⁽¹⁾, Y⁽²⁾, . . . not doing deletions, until the deletions specified by the particular instance Y^((m)) result in enough free space to meet the requirement S_(f)≧S_(f).

Described above are illustrative methods and systems for intelligently deleting media items on a mobile player device based on user taste preferences to free storage space on the device for new media items. Some embodiments use predictive covariates X_(i)=[x₁, x₂, . . . , x_(k)], which are metrics for the user taste preferences, to arrive at a probabilistic decision y_(i) as to whether each media item m_(i) on the device should be deleted. The covariates X_(i) can include metrics of local taste data uploaded from the mobile player to the system host, as well as community taste measures gathered and maintained by the system host from a community of users. Similarly, the method could be incorporated in the mobile device and driven by metrics supplied to it by the system host, or reside on the system host and the final deletion decision transmitted to the mobile device.

An example of a method for automatic deletion of media items from a mobile media player is shown in the flowchart of FIG. 1. As shown in the figure, media item play data is recorded in a portable media player in step 502. A user then makes a request to download new media items and/or create free space on the device in step 504. The media items on the device are then ranked based upon assigned probability values, as indicated at 506. The process of deleting items then begins at 508, starting from the highest (or lowest, depending upon how the ranking is structured) ranked media item on the list. Once a media item has been deleted, the system may check to see if a threshold value has been reached at 512. If the threshold value has been reached, the sequence terminates. If not, a check is made as to whether the requested space on the device has been made available, as indicated at 510. If the requested space is not yet free, the next item on the list is deleted. If so, the sequence terminates.

An example of a probability computation process is shown in the flowchart of FIG. 2. As shown in the figure, a probability model is selected at 514. Then, local and/or community metrics are applied to determine a covariate coefficient vector, as indicated at 516. A probability of deletion value is then assigned to each media item on the portable media player at 518. The deletion values are then applied to the deletion method, as previously described, at 520.

Another example of a method for automatic deletion of media items from a mobile media player is shown in the flowchart of FIG. 3. As shown in the figure, media item play data is recorded in a portable media player in step 602. A user then makes a request to download new media items and/or create free space on the device in step 604. Probability values for deletion of each of the media items, or a subset of the media items, on the portable media player are then accessed at 606. The process of randomly deleting items based upon the computed probabilities then begins at 608. Once a media item has been deleted, the system may check to see if a threshold value has been reached at 612. If the threshold value has been reached, the sequence terminates. If not, a check is made as to whether the requested space on the device has been made available, as indicated at 610. If the requested space is not yet free, the next item on the list is deleted. If so, the sequence terminates.

Methods for auto-filling a mobile media player will now also be described in greater detail. In one embodiment, a plurality of portable media players each have access to a central server or the like. Each user may initially obtain and install software on a local computer. Each user may also provide taste data to the server.

After the initialization phase described above, a user can establish communication between the host server and his or her media player, typically by connecting the media player with a computer networked to access the host server. The user can then issue a “start” command to start the auto-fill process. Alternatively, the system may be configured to automatically start the process upon being connected with a media player. In some versions, this step can also include retrieval of local user taste data, such as play counts, play sequences, media item ratings, etc., from the mobile device. Still other examples of user taste data are set forth elsewhere in this disclosure.

In some versions, a list of the media items currently on the mobile device may also be transferred to the host server. The host server may then supply the user taste data to an independent playlist-builder system, which may use any retrieved user taste data, historical user taste data, and/or the list of the media items from the mobile device to provide the host server with playlists of media items responsive to the user's taste preferences. These playlists may comprise media items in any media libraries available to the user and known to the playlist-builder system. Typically, these libraries will include the media items licensed to the user and stored on the server for access by the user.

Once the host server has been supplied with the playlists, the host server may retrieve a list of the media items currently on the mobile device (if this list wasn't previously retrieved). The list of new media items to be loaded onto the device is then reconciled with the list of media items currently on the device to determine how much space must be freed on the device to accommodate the new media items and which media items should be deleted. The media items selected for removal are then deleted and the new media items are loaded onto the device.

Although the foregoing steps can be performed repetitively ad infinitum without further explicit user intervention, at times the user may want to adjust user preferences to change the auto-fill behavior. For example, a user may wish to provide special user instructions, such as instructions to mark certain media items stored in the device as “do not delete” or “always delete.” Alternatively, a user may wish to provide additional user taste data associating user tastes with a specific activity, such as data in the form of requesting that a selection of media items or a genre of media items be for “running,” “dinner,” or “work.” As still another example, a user may wish to provide temporal user taste data associating a selection of media items or a genre of media items with an upcoming date or event.

As indicated previously, some embodiments of the system may be configured to assume that the host server has access to a playlist-builder system which automatically generates playlists based on user-supplied preferences in response to a query by the host server. Some examples of such systems known to those skilled in the art include U.S. Pat. Nos. 6,993,532 titled “Auto Playlist Generator” and 6,526,411 titled “System and Method for Creating Dynamic Playlists.” Additional examples can be found in U.S. Patent Application Publication Nos. 2002/0082901 titled “Relationship Discovery Engine,” 2003/0221541 titled “Auto Playlist Generation with Multiple Seed Songs,” and 2005/0235811 titled “Systems for and Methods of Selection, Characterization and Automated Sequencing of Media Content.” Each of the foregoing patents and published patent applications are hereby incorporated by reference. In preferred embodiments, the playlist builder will accept user taste data in multiple forms, such as one or more of the following:

1. Tags—Tags are pieces of information separate from, but related to, an object. In the practice of collaborative categorization using freely chosen keywords, tags are descriptors that individuals assign to objects.

2. Media items or media item lists—Lists of tracks, movies, etc. that are of the same type as the items to be transferred to the portable device.

3. Special item lists—For example, items the user explicitly bans, items an intelligent system using user feedback implicitly bans, items the user explicitly requests to be on the device.

4. Meta-data—Text-based data that is regularly associated with an item to classify it (e.g., genre, year, purchase date).

5. Ratings—User-defined value judging the quality of the item.

6. Events—Temporal-based features which can be inferred from a calendar (e.g., a Yahoo® calendar).

7. Serendipity—User-defined value indicating the user's preference of non-popular content in their play stream.

8. Plays model—A model of the item play behavior of the user, such as the number of times a user plays a media item before becoming tired of it, the user's expected playcount profile for an item across time, and/or percentage of a playlist or media item a user plays before switching to another.

9. Play Stream—Time-stamped record of media player interaction, including statistics, such as items played to completion, skipped, re-started, and/or deleted.

10. Play count—Number of times a media item has been played over a given period of time.

11. Temporal Data—Preferences implicitly or explicitly associated with a time instance or event, such as time of day or day of the week.

12. Subscribed influences—User-defined external taste inputs which help define the desired experience (e.g., friends' tastes, media items defined by an expert such as a DJ, etc.).

13. Ambient noise—User environment noise level sensed by the device.

14. Discovery value—User-defined value for indicating the media items never played by the user that may be introduced into the media consumption experience.

15. Re-discovery value—User-defined value for indicating the media items that the user has not played recently, which may be introduced into the media consumption experience.

Given one or more playlists generated by a playlist-builder system in response to a query, the host server may then determine the set of media items included in those playlists and execute an auto-fill process, an example of which is depicted in FIG. 4. Initiation 702 of the autofill process may be in response to a single user action, such as connecting the mobile device to the host server, or the receipt of an explicit “start” indication from the user. A playlist builder may then receive user taste data 720 and use the data to generate one or more playlists, as indicated at 704.

Once the playlist(s) have been provided, the host server can enumerate 706 the set of media items on those playlists and then reconcile 708 that set of media items with the set of media items currently on the device. The host may determine which of the new media items are already on the device and remove them from the list of items to be loaded. In some embodiments, these media items may also be removed from consideration for deletion. The host server may then use a method to effectively rank the media items on the device as to the probability they should be deleted based on how compatible they are with the user taste data supplied to the playlist builder system. This ranking may then be used to select the media items to be loaded onto the device. The host server may also rank the media items in an analogous way as to the probability they should be deleted from the player.

Using the ranking information for the new media items, the host server may, as shown at 710, select the item with the highest probability it should be loaded from the list of new media items. Items may then be deleted 712 from the media player until enough space is available for the most compatible of the new items using the method described below, after which media items are loaded 714 onto the media player. This process of selecting 710, deleting 712, and loading 714 is repeated until, for example, the available time for the auto-fill operation has expired, as indicated at 716, all items on the device have been deleted, as indicated at 718, or the entire new set of media items has been loaded onto the device, as indicated at 722. Alternatively, in circumstances where there is no time limit on the load process, the deletion process 712 may delete enough items from the device to free enough space to load as many of the new items as the device capacity, or a preselected number of items, will accommodate. A user may also dictate that a particular subset of memory be used for new items and free that amount of space. The loading process 714 may then load as many of the new media items as the available space on the device permits in a single operation.

Finally, for media players which also accept downloads of playlists, the playlist(s) may be edited to remove any new items which could not be loaded and then the playlist(s) loaded onto the device, as indicated at 724 and 726, respectively.

In some embodiments, media items may be randomly chosen and deleted to free enough storage space on the media player to accommodate the new media items. In other embodiments, the media items currently on the player may be ranked in terms of how compatible they are with the criteria used to generate the playlists of new media items to be loaded on the device. These media items may then be preferentially deleted based on that ranking. The same process can also be applied to the playlist items to provide an inverse ranking of the new media items to cause the most desirable items to be loaded first. In this way, the most desirable subset of new items will be loaded in the event that the entire set of new media items cannot be loaded due to, for example, time or space limitations.

As previously described, a statistical method for inferring which media items on the player should be deleted based on metrics of user taste preferences may be applied. The method may model the conditional probability of the binary decision y that an item should be deleted (y=1) in terms of a the computed value X for an n-vector of item metrics X:

Pr{y=1|X=[x ₁ , x ₂ , . . . , x _(K) ]}F(βG(X))

where G(X) is an m-vector of non-linear functions of the metrics and β is a vector of m weighting values for linearly combining the components of G(X) into a scalar value. The component functions G(X) are from a particular class of function such the decision variable y has a particular type of generalized linear model

y=F(βG(X))+ε

where F(x) is a monotonic, non-decreasing “link” function that maps (−∝, ∝) into the interval (0,1), and ε is a zero-mean random variable that is assumed to have a relevant distribution (although the auto-deletion process operates oblivious to the distribution of ε).

Given a specified F(x), β, and G(X), the host server ranks the media items on the player which are candidates for deletion and the new items to be loaded by first computing F(βG(X)) for each item in both sets. A common choice of F(x) is the logistic function

F(x)=1/(1+e− ^(x))

It should be appreciated that since F(x) is a monotonic, non-decreasing function, the items can be ranked by the computed values F(βG(X)), with the values βG(X) used as first round tie-breakers when the values F(βG(X)) for two items are identical and the values of βG(X) for those items differ. When the F(βG(X)) and the values of βG(X) both agree for the two items, any preferred method can be used to rank one before the other, including a random choice. In this way, the ranking of the media items in a set by values of F(βG(X)) is seen to be identical to the ranking of those items by values βG(X), the latter being a ranking linked explicitly to the computed metrics.

Another method for computing the metrics X=[x₁, . . . , x_(K)] assumes that the items are to be ranked based on a set of item attributes a_(l), a₂, . . . , a_(K) such as those described above in the discussion about playlist building, and a set of preference values p₁, p_(2l , . . . , p) _(K) that range between 0 (strong preference) and 1 (weak preference). The degree to which an item satisfies attribute a_(k) may be computed as

x _(k) =h(a _(k))[100−90p _(k)]+(1−h(a _(k)))u(p _(k))

where h(a_(k))=1 if the item has attribute a_(k) and h(a_(k))=0 otherwise, and u(p_(k))=0 if p_(k)=0 and u(p_(k))=5 otherwise. The media items on the device may then be ranked for possible deletion by the values

βG(X)=50k−(x ₁ + . . . +x _(k))

Similarly, the new items may be inverse ranked according to the same values.

The ranking of media items on the device during the reconciliation process 708 establishes the relative probability that items will be deleted. In the deletion process 712, items are actually deleted in a deterministic or probabilistic fashion by, for example, methods described herein. The deterministic and probabilistic methods used for deletion may also be applied to process 712 for selecting items in sequence from the set of new items to increase the diversity of user experiences in repeated auto-filling operations.

The above description fully discloses the invention including preferred embodiments thereof. Without further elaboration, it is believed that one skilled in the art can use the preceding description to utilize the invention to its fullest extent. Therefore the examples and embodiments disclosed herein are to be construed as merely illustrative and not a limitation of the scope of the present invention in any way.

It will be obvious to those having skill in the art that many changes may be made to the details of the above-described embodiments without departing from the underlying principles of the invention. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims.

The scope of the present invention should, therefore, be determined only by the following claims. 

1. A system for the automated selection and loading of media items from a computer into a mobile media player device, the system comprising: a network; at least one mobile media player arranged for communication over the network with a server; a server coupled to the network and having executable instructions for: receiving a media item current playlist from the mobile media player; receiving current user taste data associated with a user of the mobile media player; generating a recommended playlist responsive to the user taste data; ranking the media items in the recommended playlist responsive to the user taste data; selecting a media item from the recommended playlist; deleting at least one item on the current playlist from the mobile media player to free memory space for the selected media item; and downloading the selected media item over the network into memory on the mobile media player.
 2. The method of claim 1 and further comprising: repeating said selecting, deleting and downloading steps until an available time for the auto-fill operation has expired.
 3. The system of claim 1 and further comprising: repeating said selecting, deleting and downloading steps until all the items on the current playlist have been deleted from the mobile media player.
 4. The system of claim 1 and further comprising: repeating said selecting, deleting and downloading steps until all the items on the recommended playlist have been downloaded into the mobile media player.
 5. The system of claim 1 and further comprising: repeating said selecting, deleting and downloading steps until a preselected number of media items from the recommended playlist have been downloaded into the mobile media player.
 6. The system of claim 1 wherein the selecting and downloading steps include: first selecting a highest ranked one of the recommended playlist media items; and repeating said downloading step, in descending rank order of the media items, until the amount of memory storage space available on the mobile media player for storing new items is insufficient to add the next item.
 7. The system of claim 1 and further comprising: repeating said selecting, deleting and downloading steps until a user-selected amount of memory space is used in the mobile media player for storing new media items downloaded from the recommended playlist.
 8. The system of claim 1 wherein removing media items from the current playlist comprises randomly selecting media items for removal.
 9. The system of claim 1 wherein removing media items from the current playlist comprises: ranking the media items in the current playlist based on compatibility with the user taste data used to generate the recommended playlist; and selecting media items for removal in order of the said ranking, by sequentially removing the least compatible media items first and the most compatible media items last.
 10. The system of claim 9, wherein the current user taste data comprises at least one of a metric indicative of the total number of plays for one or more media items in the current media item playlist, a metric indicative of a recent rate of plays for one or more media items in the current media item playlist, and a metric indicative of a recent rate of skips for one or more media items in the current media item playlist.
 11. The system of claim 9, wherein said ranking media items in the current media item playlist in an order in which the media items are to be removed from the mobile media player includes ranking the media items stored on the mobile media player according to a probability of deletion from the mobile media player, responsive to implicit current user interest in retaining them, without explicit user input or user selections.
 12. The system of claim 11 wherein the implicit user interest for each media item currently stored on the mobile media player is quantified using a linear regression model responsive to a vector of selected covariates, wherein the covariates comprise measurable properties or metrics of the media items reflecting user taste that increase or decrease a probability of deleting the media item.
 13. The system of claim 12 wherein the covariates are selected from a first class of metrics comprising 1) a total number of plays p(t) at any point in time, 2) a recent rate of plays r(t)=[p(t)−p(t−Δt)]/Δt, and 3) a recent rate of skips s(t)=[q(t)−q(t−Δt)]/Δt, where q(t) is the number of times the listener has prematurely terminated playback of the item.
 14. The system of claim 13 wherein the number of plays p(t) is normalized relative to a total number of plays P, (i.e., p(t)/P).
 15. The system of claim 13 wherein the covariates are selected from a second class of metrics responsive to metadata similarity between one of the media items and a set of candidate new items j₁, j₂, . . . , j_(m). 